home *** CD-ROM | disk | FTP | other *** search
- property pQuizDB, pChapterNum, pSectionList, pCurrentSectionType, pLastVidStill
-
- on new me, dbName
- pQuizDB = DGOpenDatabase(dbName, 1, 0, EMPTY)
- if pQuizDB = "#ERROR#" then
- alert("problem opening quiz database")
- quit()
- end if
- mGetChapter(me)
- return me
- end
-
- on mDelete me
- if pQuizDB <> 0 then
- if DGClose(pQuizDB) = "#ERROR#" then
- end if
- end if
- end
-
- on mGetChapter me
- queryName = "getChapters"
- qDef = DGQDOpen(queryName, pQuizDB)
- rs = DGQDCreateRS(qDef)
- DGRSMoveLast(rs)
- numRecs = DGRSGetRecordCount(rs)
- DGRSMoveFirst(rs)
- recOffset = random(numRecs) - 1
- DGRSMove(recOffset, rs)
- record = mGetCurrentRecord(me, [#Template], rs)
- DGRSClose(rs)
- DGQDClose(qDef)
- getProp(record, #Template)
- Template = getProp(record, #Template)
- numSections = Template.words.count
- i = 1
- pSectionList = []
- repeat while i <= numSections
- append(pSectionList, Template.word[i])
- i = i + 1
- end repeat
- mIncChapterCount(me)
- end
-
- on mGoNextSection me
- if pSectionList.count = 0 then
- mGetChapter(me)
- end if
- pCurrentSectionType = pSectionList[1]
- deleteAt(pSectionList, 1)
- go(pCurrentSectionType)
- end
-
- on mIncChapterCount me
- rs = DGCreateRecordset("SELECT * FROM Quiz_Sys WHERE ID = 1", pQuizDB)
- pChapterNum = DGRSGetFieldValue("Sys_Last_Play_Num", rs) + 1
- DGRSEdit(rs)
- DGRSSetFieldValue("Sys_Last_Play_Num", pChapterNum, rs)
- DGRSUpdate(rs)
- DGRSClose(rs)
- end
-
- on mGetCurrentRecord me, fieldNamesList, currentRS
- record = [:]
- i = 1
- repeat while i <= fieldNamesList.count
- addProp(record, getAt(fieldNamesList, i), DGRSGetFieldValue(string(getAt(fieldNamesList, i)), currentRS))
- i = i + 1
- end repeat
- return record
- end
-
- on mGetQuestionRecord me, qType, idNum, fieldNamesList
- queryName = "get" & string(qType) & "_QuestionRecord_q"
- qDef = DGQDOpen(queryName, pQuizDB)
- DGQDSetParameterValue("p_Id", idNum, qDef)
- rs = DGQDCreateRS(qDef)
- if rs = "#ERROR#" then
- alert("buggggggg")
- nothing()
- end if
- record = mGetCurrentRecord(me, fieldNamesList, rs)
- mUpdateRecency(me, rs)
- DGRSClose(rs)
- DGQDClose(qDef)
- return record
- end
-
- on mGetLRUCC me
- return getProp(mGetLRU(me, "getCC_LRU_q", [:], [#Char_Code], 1), #Char_Code)
- end
-
- on mGetCCLRURes me, CC, resType
- case resType of
- #AU:
- return getProp(mGetLRU(me, "getAudClip_LRU_q", [#p_CC: CC], [#Audio_File], 1), #Audio_File)
- #PIC:
- retList = mGetLRU(me, "getPic_LRU_q", [#p_CC: CC], [#Pic_File], 1)
- return getProp(retList, #Pic_File)
- #GRID:
- retList = mGetLRU(me, "getGRID_LRU_q", [#p_CC: CC], [#Pic_Grid_File, #Pic_Grid_Code], 1)
- return retList
- end case
- end
-
- on mGetLRUQuestion me, qType, qParamList
- case qType of
- #VO:
- clipNum = getProp(mGetLRU(me, "getVid_LRU_q", [:], [#Vid_Code], 1), #Vid_Code)
- if clipNum = 0 then
- questionID = 0
- else
- questionID = getProp(mGetLRU(me, "getVO_LRU_q", [#p_Vid_Code: clipNum], [#ID], 0), #ID)
- end if
- #VR:
- clipNum = mGetVal(me, "getVid_MRU_q", [#p_Last_Appearance: pChapterNum], #Vid_Code, 0)
- questionID = getProp(mGetLRU(me, "getVR_LRU_q", [#p_Vid_Code: clipNum], [#ID], 0), #ID)
- #AUL, #PCL, #AU:
- questionID = getProp(mGetLRU(me, "getAU_LRU_q", qParamList, [#ID], 0), #ID)
- #FF:
- questionID = getProp(mGetLRU(me, "getFF_LRU_q", qParamList, [#ID], 0), #ID)
- #FFF:
- questionID = getProp(mGetLRU(me, "getFFF_LRU_q", qParamList, [#ID], 0), #ID)
- #AN:
- questionID = getProp(mGetLRU(me, "getAN_LRU_q", qParamList, [#ID], 0), #ID)
- otherwise:
- alert("hgwshdgwdg")
- end case
- return questionID
- end
-
- on mGetVal me, queryName, extraParamList, returnParam, updateFlag
- qDef = DGQDOpen(queryName, pQuizDB)
- i = 1
- repeat while i <= extraParamList.count
- DGQDSetParameterValue(string(getPropAt(extraParamList, i)), getAt(extraParamList, i), qDef)
- i = i + 1
- end repeat
- rs = DGQDCreateRS(qDef)
- DGRSMoveFirst(rs)
- record = mGetCurrentRecord(me, [returnParam], rs)
- if updateFlag then
- mUpdateRecency(me, rs)
- end if
- DGRSClose(rs)
- DGQDClose(qDef)
- return getProp(record, returnParam)
- end
-
- on mGetLRU me, queryName, extraParamList, returnParamL, updateFlag
- qDef = DGQDOpen(queryName, pQuizDB)
- i = 1
- repeat while i <= extraParamList.count
- DGQDSetParameterValue(string(getPropAt(extraParamList, i)), getAt(extraParamList, i), qDef)
- i = i + 1
- end repeat
- rs = DGQDCreateRS(qDef)
- DGRSMoveLast(rs)
- numRecs = DGRSGetRecordCount(rs)
- if numRecs = 0 then
- i = 1
- retList = [:]
- repeat while i <= returnParamL.count
- addProp(retList, getAt(returnParamL, i), 0)
- i = i + 1
- end repeat
- return retList
- end if
- DGRSMoveFirst(rs)
- recOffset = random(numRecs) - 1
- DGRSMove(recOffset, rs)
- record = mGetCurrentRecord(me, returnParamL, rs)
- if updateFlag then
- mUpdateRecency(me, rs)
- end if
- DGRSClose(rs)
- DGQDClose(qDef)
- return record
- end
-
- on mUpdateRecency me, table
- DGRSEdit(table)
- DGRSSetFieldValue("Last_Appearance", pChapterNum, table)
- DGRSUpdate(table)
- end
-
- on zeroAll me
- rs = DGCreateRecordset("SELECT * FROM Quiz_Sys WHERE ID = 1", pQuizDB)
- DGRSEdit(rs)
- DGRSSetFieldValue("Sys_Last_Play_Num", 0, rs)
- DGRSUpdate(rs)
- DGRSClose(rs)
- zeroTable(me, "Media_Pic")
- zeroTable(me, "Media_Pic_Grid")
- zeroTable(me, "Questions_VO")
- zeroTable(me, "Questions_FF")
- zeroTable(me, "Questions_AN")
- zeroTable(me, "Questions_Char")
- zeroTable(me, "Media_Vid")
- zeroTable(me, "Media_Aud")
- zeroTable(me, "Quiz_Char")
- end
-
- on zeroTable me, table
- sqlstr = "SELECT * FROM " & table
- rs = DGCreateRecordset(sqlstr, pQuizDB)
- DGRSMoveFirst(rs)
- i = 1
- repeat while 1
- DGRSEdit(rs)
- DGRSSetFieldValue("Last_Appearance", 0, rs)
- DGRSUpdate(rs)
- DGRSmoveNext(rs)
- if DGRSisEOF(rs) then
- DGRSmovePrev(rs)
- exit repeat
- end if
- end repeat
- DGRSClose(rs)
- end
-